﻿#pragma once

class CProvinceData;
class CStrategyMapData;
class CLandedTitlesData;

/*
这个类用来管理非脚本数据 易变动 有些需保存到存档
*/
class CProgramDataMgr
{
	friend class CDataMgr;	// 只有CDataMgr能实例化

public:
	void InitData();	// 初始化所有数据

public:
	const CProvinceData* GetProvinceDataCPtr() const { return m_pProvinceData; }
	CProvinceData* GetProvinceDataPtr() const { return m_pProvinceData; }
private:
	CProvinceData* m_pProvinceData;

public:
	const CStrategyMapData* GetStrategyMapDataCPtr() const { return m_pStrategyMapData; }
private:
	CStrategyMapData* m_pStrategyMapData;

public:
	const CLandedTitlesData* GetCLandedTitlesDataCPtr() const { return m_pLandedTitlesData; }
private:
	CLandedTitlesData* m_pLandedTitlesData;

public:
	~CProgramDataMgr();
private:
	CProgramDataMgr();
	CProgramDataMgr(const CProgramDataMgr&) = delete;
	CProgramDataMgr& operator =(const CProgramDataMgr&) = delete;

	bool IsDataComplete() const;
};